﻿using System.Collections.Generic;
using Libium.Core;

namespace Libium.UseCases
{
	public interface IUseCaseInstanceService :IInstanceService
	{
		string TemporaryFilePath { get; }

		T CreateUseCase<T>() where T : IUseCase;
		void ExecuteUseCase(IUseCase useCase);
		void ExecuteCommand(ICommand command);

		ICommand Message(string message, MessageType type, IEnumerable<ICommand> commands, ICommand defaultCommand = null);
	}
}